package com.xhtt.modules.inspection.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 巡检任务
 * </p>
 *
 * @author xj
 * @since 2019-01-29
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class InsTask extends Model<InsTask> {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 巡检类型1日巡检2周巡检3月巡检
     */
    private Integer inspectType;

    /**
     * 任务名称
     */
    private String taskName;

    /**
     * 1创建2进行中3已完成
     */
    private Integer taskStatus;

    /**
     * 任务类型1常规任务2临时任务
     */
    private Integer taskType;

    /**
     * 任务时间要求-开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDateTime taskStartDate;

    /**
     * 任务时间要求-结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDateTime taskEndDate;

    /**
     * 巡检频率
     */
    private Integer inspectRate;

    /**
     * 巡检时间段-日班-开始时间
     */
    @JsonFormat(pattern = "HH:mm")
    private LocalDateTime inspectMorningStartDate;

    /**
     * 巡检时间段-日班-结束时间
     */
    @JsonFormat(pattern = "HH:mm")
    private LocalDateTime inspectMorningEndDate;

    /**
     * 巡检时间段-夜班-开始时间
     */
    @JsonFormat(pattern = "HH:mm")
    private LocalDateTime inspectNightStartDate;

    /**
     * 巡检时间段-夜班-结束时间
     */
    @JsonFormat(pattern = "HH:mm")
    private LocalDateTime inspectNightEndDate;

    /**
     * 关联-线路类型ins_line.type
     */
    private Integer lineType;

    /**
     * 关联-线路ID  ins_line.id
     */
    private Integer lineId;

    /**
     * 所属分组id
     */
    private Integer teamId;


    /**
     * 线路名称
     */
    @TableField(exist = false)
    private String lineName;

    /**
     * 多个逗号隔开
     * 班组名称
     */
    @TableField(exist = false)
    private String groupName;

    /**
     * 巡检人员
     */
    @TableField(exist = false)
    private String insUser;

    /**
     * 当前巡检第几次
     */
    @TableField(exist = false)
    private Integer currentStep;

    /**
     * 一共需要巡检次数
     */
    @TableField(exist = false)
    private Integer totalStep;

    /**
     * 备注
     */
    private String memo;

    @TableLogic
    private int delFlag;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 最后一次调整时间
     */
    @TableField(update = "now()")
    private LocalDateTime updateTime;

    /**
     * 创建者ID，人工系统创建为0
     */
    private Integer createUserId;

    /**
     * 最后一次调整者ID
     */
    private Integer updateUserId;

    /**
     * 删除时间
     */
    private LocalDateTime deleteTime;


    @Override
    protected Serializable pkVal() {
        return this.id;
    }

}
